Many companies today rely on business intelligence systems to store and analyze data regarding their business processes. Such a business intelligence system may receive data regarding the business from any number of sources. For example, a business intelligence system may receive data regarding the company's employees from a payroll or human resources (HR) application. In another example, a business intelligence system may receive data regarding products manufactured and sold by the company from an enterprise resource planning (ERP) application. In a further example, a business intelligence system may receive data regarding a competitor's products, such as pricing information.
In addition to receiving and storing data regarding a company's operations, a business intelligence system may also include various utilities that use the data for purposes of driving business decisions, benchmarking, planning, and other functions. To this end, report generation and data analytics play important roles in allowing decision makers to quickly review and assess the various aspects of the business. For example, a sales report may allow a sales manager to determine which products are selling well, which members of the sales team are performing poorly, or how sales revenues compare to other time periods. However, entry of the sales-related information driving the report may require a sales team member to log into the underlying system to enter the data. Similarly, the layout of the sales report may be created in a static manner by a programmer to link the report to its underlying data (e.g., the sales manager has no control over how the report is presented). It is challenging and difficult to devise mechanisms that allow for the dynamic entry of data to a business intelligence system and the dynamic analysis of the dynamically entered data.